package com.flyduck.modules.system.service;

import com.flyduck.modules.system.domain.SysRole;
import com.flyduck.common.vo.PageResult;
import com.flyduck.common.vo.QueryVo;

import java.util.List;

/**
 * @author flyduck
 */
public interface SysRoleService {
    /**
     * 获取所有的角色
     * @return
     */
    List<SysRole> findList();


    /**
     * 分页查询
     * @param queryVo
     * @return
     */
    PageResult findPage(QueryVo queryVo);

    /**
     * 保存角色
     * @param sysRole
     */
    void save(SysRole sysRole);

    /**
     * 更新角色
     * @param sysRole
     */
    void update(SysRole sysRole);

    /**
     * 删除角色
     * @param id
     */
    void deleteById(Long id);

    /**
     * 根据角色id查询角色
     * @param id
     * @return
     */
    SysRole getRoleById(Long id);

    /**
     * 启用/禁用角色
     * @param id
     * @param enabled
     */
    void updateStatus(Long id, Boolean enabled);

    /**
     * 根据用户id查询角色
     * @param userId
     * @return
     */
    List<SysRole> getRolesByUserId(Long userId);
}
